DESKIE API
Cases
Create a case
POST  |  https://[domain].deskie.io/api/cases.json
Create a new case
Parameters
Request
{
  "case" : {
    "user_email" : "user@domain.com",
    "user_full_name" : "User's full name",
    "subject" : "I need help",
    "content" : "I need help",
    "language_id" : 2,
    "custom_fields" : {
      "cf_25" : "some text",
      "cf_30" : "another field"
    },
    "labels" : [101, 102]
  }
}
Response
{
  "case" : {
    "case_id" : 2000,
    "case_number" : "664-245651",
    "subject" : "I need help",
    "user_id" : 123,
    "staff_id" : 22,
    "group_id" : 44,
    "status" : "waiting",
    "priority" : "normal",
    "channel" : "web",
    "recipient" : "user@domain.com",
    "recipient_cc" : "",
    "recipient_bcc" : "",
    "deleted" : false,
    "spam" : false,
    "created_at" : "Mon, 05 May 2014 00:15:17 +0300",
    "updated_at" : "Tue, 23 Dec 2014 10:55:23 +0200",
    "language_id" : 2,
    "custom_fields" : {
      "cf_25" : "some text",
      "cf_30" : "another field"
    },
    "labels" : [101, 102]
  }
}
Sample code
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X POST -d '{ "case": { "user_email":"user@domain.com", "user_full_name":"User\u0027s full name", "subject":"I need help", "content":"I need help", "language_id":2, "custom_fields":{"cf_25":"some text", "cf_30":"another field"}, "labels":[101, 102] }}' https://[domain].deskie.io/api/cases.json
Create a case with attachments
POST  |  https://[domain].deskie.io/api/cases.json
Create a new case with attachments.
The maximum size of single attached file is 25MB.
The total size of all files should not exceed 50MB.
There are two options to send a request:
— in multipart/form-data format, to send the files themselves in the request;
— using the attachment_urls parameter to specify links to files.
Request in multipart/form-data format
{
  "case[user_email]": "alex@abcompany.com",
  "case[user_full_name]": "Alex",
  "case[subject]": "Contract and invoice",
  "case[content]": "Dear Team, docs are attached.",
  "case[attachments][1]": "Contract.pdf",
  "case[attachments][2]": "Invoice.pdf"
}
Request using the attachment_urls parameter
{
  "case" : {
    "user_email" : "alex@abcompany.com",
    "user_full_name": "Alex",
    "subject" : "Contract and invoice",
    "content" : "Dear Team, docs are attached.",
    "attachment_urls":  [
        "https://abcompany.com/548899/contract.pdf",
        "https://abcompany.com/548899/invoice.pdf"
    ]
  }
}
Response
{
  "case" : {
    "case_id" : 2000,
    "case_number" : "664-245651",
    "subject" : "Contract and invoice",
    "user_id" : 123,
    "staff_id" : 22,
    "group_id" : 44,
    "status" : "waiting",
    "priority" : "normal",
    "channel" : "web",
    "recipient" : "alex@abcompany.com",
    "cc_emails" : "",
    "bcc_emails" : "",
    "deleted" : false,
    "spam" : false,
    "created_at" : "Mon, 05 May 2014 00:15:17 +0300",
    "updated_at" : "Tue, 23 Dec 2014 10:55:23 +0200",
    "language_id" : 2,
    "custom_fields" : {
      "cf_25" : "some text",
      "cf_30" : "another field"
    },
    "labels" : [101, 102]
  }
}
Sample code in multipart/form-data format
curl -u [staff_email]:[api_key] -F "case[attachments][0]=@/path/to/file1.ext" -F "case[attachments][1]=@/path/to/file2.ext" -F "case[content]=I need help" -F "case[subject]=I need help" -F "case[user_email]=alex@abcompany.com" -F "case[language_id]=2" -F "case[custom_fields][cf_44]=3" -X POST https://[domain].deskie.io/api/cases.json
Sample code using the attachment_urls parameter
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X POST -d '{ "case": { "user_email":"alex@abcompany.com", "subject":"Contract and invoice", "content":"Dear Team, docs are attached.", "attachment_urls":  ["https://abcompany.com/548899/contract.pdf", "https://abcompany.com/548899/invoice.pdf"] }}' https://[domain].deskie.io/api/cases.json
Get a list of cases
GET  |  https://[domain].deskie.io/api/cases.json
Get a list of cases.

When passing an array parameter (for example, several user IDs via the user_id parameter), you can specify no more than 20 values.

In response to the request, the "labels" parameter transmits all the labels of the case; "locked_labels" — are the ones added via rules and SLA and agents cannot delete them either through the web version of the agent account or mobile apps.
1. You can get up to 100 cases in the response to one request, i.e. the maximum value of the "limit" parameter is 100.

2. To get cases in batches, you need to pass the "page" and "limit" parameters. The "page" parameter allows you to get the desired page with cases, the number of which is determined by the "limit" parameter.

3. You can determine how many cases there are in total using "total_count" in the response to the first request.

4. If you do not specify the "page" and "limit" parameters in your request, you will get the first 100 cases. By default, the "updated_at_desc" sorting is used - by the time of the last change (from new to old).

5. The maximum value of the "page" parameter is 500.

If you have a lot of cases and you want to get all them, you need to check when the first case was created. You can do so in the "Cases" section of the agent account. Then divide the entire period into small intervals and pass the "page" and "limit" parameters within each interval.

Let's say you used Deskie for a year, and during this period 1,000,000 cases were created in your account. You can split the year into 52 weeks and get data for each week by passing the parameters:
  • "page" and "limit" to get the desired batch of cases;
  • "from_time" and "to_time" so that requests for the desired week are included in the selection, taking into account the creation time;
  • "sort=created_at_asc" so that requests are sorted by creation time, starting with the oldest.
Parameters
Response
{
    "0": {
      "case" : {
        "case_id" : 2000,
        "case_number" : "664-245551",
        "subject" : "I need help",
        "user_id" : 123,
        "staff_id" : 22,
        "group_id" : 44,
        "status" : "open",
        "priority" : "low",
        "channel" : "web",
        "recipient" : "user@domain.com",
        "recipient_cc" : "user_cc@domain.com,user_cc2@domain.com",
        "recipient_bcc" : "user_bcc@domain.com",
        "deleted" : false,
        "spam" : false,
        "created_at" : "Mon, 05 May 2014 00:15:17 +0300",
        "updated_at" : "Tue, 23 Dec 2014 10:55:23 +0200",
        "language_id" : 2,
        "custom_fields" : {
          "cf_25" : "some text",
          "cf_30" : "another field"
        },
        "labels" : [101, 102],
        "closing_speed" : 7 // value in minutes. 0 - less than a minute,
                            // "-" - not closed
      }
    },
    "1": {
      "case" : {
        "case_id" : 2001,
        "case_number" : "334-245651",
        "subject" : "Oh, help me please",
        "user_id" : 123,
        "staff_id" : 22,
        "group_id" : 44,
        "status" : "waiting",
        "priority" : "normal",
        "channel" : "facebook",
        "recipient" : "facebook",
        "recipient_cc" : "",
        "recipient_bcc" : "",
        "deleted" : false,
        "spam" : false,
        "created_at" : "Mon, 05 May 2014 00:15:17 +0300",
        "updated_at" : "Tue, 23 Dec 2014 10:55:23 +0200",
        "language_id" : 2,
        "custom_fields" : {
          "cf_25" : "some text",
          "cf_30" : "another field"
        },
        "labels" : [101, 102],
        "closing_speed" : 0
      }
    },
    "2": {
      "case" : {
        "case_id" : 2002,
        "case_number" : "634-245651",
        "subject" : "Please, help me!",
        "user_id" : 123,
        "staff_id" : 22,
        "group_id" : 44,
        "status" : "closed",
        "priority" : "high",
        "channel" : "email",
        "recipient" : "user2@domain.com",
        "recipient_cc" : "user_cc@domain.com,user_cc2@domain.com",
        "recipient_bcc" : "bcc@domain.com",
        "deleted" : false,
        "spam" : false,
        "created_at" : "Mon, 05 May 2014 00:15:17 +0300",
        "updated_at" : "Tue, 23 Dec 2014 10:55:23 +0200",
        "language_id" : 1,
        "custom_fields" : {
          "cf_25" : "some text",
          "cf_30" : "another field"
        },
        "labels" : [101, 102],
        "closing_speed" : "-"
      }
    },
    "3": {
      "case" : {
        "case_id" : 2003,
        "case_number" : "134-245651",
        "subject" : "Help!!!",
        "user_id" : 123,
        "staff_id" : 22,
        "group_id" : 44,
        "status" : "closed",
        "priority" : "critical",
        "channel" : "email",
        "recipient" : "user3@domain.com",
        "recipient_cc" : "user_cc@domain.com,user_cc2@domain.com",
        "recipient_bcc" : "user_bcc@domain.com",
        "deleted" : false,
        "spam" : false,
        "created_at" : "Mon, 05 May 2014 00:15:17 +0300",
        "updated_at" : "Tue, 23 Dec 2014 10:55:23 +0200",
        "language_id" : 2,
        "custom_fields" : {
          "cf_25" : "some text",
          "cf_30" : "another field"
        },
        "labels" : [101, 102]
      }
    },
    "total_count":17
}
Sample code (string)
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -g -X GET https://[domain].deskie.io/api/cases.json?limit=50&page=2&custom_fields[cf_25]=data&custom_fields[cf_30]=anotherdata&status=open
Sample code (array)
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -g -X GET https://[domain].deskie.io/api/cases.json?limit=50&page=2&custom_fields[cf_25][]=data&custom_fields[cf_25][]=data_two&custom_fields[cf_30][]=1&custom_fields[cf_30][]=2&status[]=open&status[]=closed
Get a list of filters 
GET  |  https://[domain].deskie.io/api/filters.json
View all the filters of the agent whose credentials are being used for authentication.
Response
{
    "0" : {
      "filter" : {
        "filter_id" : unassigned,
        "filter_name" : "open",
        "isSelected" : true,
        "isCustom" : false
      }
    },
    "1" : {
      "filter" : {
        "filter_id" : 234,
        "filter_name" : "Test filter",
        "isSelected" : false,
        "isCustom" : true
      }
    },
    "total_count":10
}
Sample code
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X GET https://[domain].deskie.io/api/filters.json
View a case
GET  |  https://[domain].deskie.io/api/cases/[id].json
View data of a specific case.

In response to the request, the "labels" parameter transmits all the labels of the case; "locked_labels" — are the ones added via rules and SLA and agents cannot delete them either through the web version of the agent account or mobile apps.
Response
{
  "case" : {
    "case_id" : 2000,
    "case_number" : "664-245651",
    "subject" : "I need help",
    "user_id" : 123,
    "staff_id" : 22,
    "group_id" : 44,
    "status" : "closed",
    "priority" : "normal",
    "channel" : "web",
    "recipient" : "user@domain.com",
    "cc_emails" : "user_cc@domain.com,user_cc2@domain.com",
    "bcc_emails" : "user_bcc@domain.com",
    "deleted" : false,
    "spam" : false,
    "created_at" : "Mon, 05 May 2014 00:15:17 +0300",
    "closed_at" : "-",
    "updated_at" : "Tue, 23 Dec 2014 10:55:23 +0200",
    "last_response_at" : "Tue, 23 Dec 2014 09:53:14 +0200",
    "closing_speed": 15, // value in minutes. 0 - less than a minute,
                            // "-" - not closed
    "language_id" : 2,
    "custom_fields" : {
      "cf_25" : "some text",
      "cf_30" : "another field"
    },
    "labels" : [101, 102, 103, 104, 105],
    "locked_labels" : [104, 105],
    "rating": "high",
    "rating_comment": "cool123",
    "rated_staff_id": 193
  }
}
Sample code
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X GET https://[domain].deskie.io/api/cases/2000.json
View messages
GET  |  https://[domain].deskie.io/api/cases/[id]/messages.json
View the messages of a specific case.

If the "page" and "limit" parameters are not specified in the request, by default, the last 100 messages of the case will be returned.

❗️When a message contains images within text or attached files, you receive links to them in the response to the request. For fresh messages, links to images and files work without authorization. If the message was created more than 30 days ago, that is the files are old, to get them you need to use the same authentication method that you use to make requests to the Deskie API.
Parameters
Response
{
  "0": {
      "message" : {
        "message_id" : 2000,
        "user_id" : 123,
        "staff_id" : 0,
        "content" : "",
        "content_html" : "Test response of the user",
        "attachments" : [],
        "note" : false,
        "sent_via_rule" : false,
        "created_at" : "Mon, 05 May 2014 00:15:17 +0300",
        "sent_at" : "Mon, 05 May 2014 00:15:17 +0300",
        "rating": "high",
        "rating_comment": "cool123",
        "rated_staff_id": 0
      }
    },
  "1": {
      "message" : {
        "message_id" : 200198257,
        "user_id" : 0,
        "staff_id" : 41087,
        "content" : "",
        "content_html" : "Test response of the user",
        "attachments" : [
          {
              "file_id" : 345,
              "file_name" : "test.jpg",
              "file_size" : 40863,
              "mime_type" : "image/jpeg",
              "url" : "https://[domain].deskie.io/some_path_here/345"
          }
        ],
        "note" : false,
        "sent_via_rule" : false,
        "created_at" : "Mon, 15 May 2023 09:28:43 +0300",
        "sent_at" : "Mon, 15 May 2023 10:15:17 +0300" // if created_at and sent_at are different, it means that a delayed message is scheduled
      }
    },
    "total_count":17
}
Sample code
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X GET https://[domain].deskie.io/api/cases/200/messages.json
View changelog
GET  |  https://[domain].deskie.io/api/cases/[id]/changelog.json
View the changelog of a specific case.

By default, the response contains the record of almost all the changes that have occurred in the case. For filtering, with the request, you need to pass the parameters from the table below.

If the "page" and "limit" parameters are not specified in the request, by default, the record of the last 100 changes that have occurred in the case will be returned.
The changelog is stored for the last year. If a case is old, then there will be no logs. If a case was created more than a year ago, but new actions are still appearing in it (parameter changes, user responses, agent responses, notes), only data for the last year will be present in the changelog of that case.
Parameters
Response
{
    "changelog": [{
            "created_at": "Fri, 13 Aug 2021 12:57:54 +0300",
            "event": "rules",
            "done_by": "rule_1332",
            "old_value": "Slack Notification (ID - 1332)"
        },
        {
            "created_at": "Fri, 13 Aug 2021 12:57:54 +0300",
            "event": "staff",
            "done_by": "rule_1332",
            "old_value": "0",
            "value": "330"
        },
        {
            "created_at": "Fri, 13 Aug 2021 12:57:54 +0300",
            "event": "fixed_chat",
            "done_by": "rule_1332",
            "old_value": "0",
            "value": "330"
        },
        {
            "created_at": "Fri, 13 Aug 2021 12:57:54 +0300",
            "event": "group",
            "done_by": "rule_1336",
            "old_value": "341",
            "value": "344"
        },
        {
            "created_at": "Fri, 13 Aug 2021 12:58:07 +0300",
            "event": "status",
            "done_by": "staff_330",
            "old_value": "open",
            "value": "waiting"
        },
        {
            "created_at": "Fri, 13 Aug 2021 12:58:13 +0300",
            "event": "custom_field_94",
            "done_by": "staff_330",
            "old_value": "",
            "value": "1"
        },
    ]
}
Sample code
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X GET https://[domain].deskie.io/api/cases/128-917744/changelog.json?show_chat_completion=true&status=any,any
Add a response
POST  |  https://[domain].deskie.io/api/cases/[id]/messages.json
Add a new user/agent response to the case.
Bulk response addition: https://[domain].deskie.io/api/cases/[id],[id],[id]/messages.json.

No more than 10 cases in one request.
Parameters
Request
{ 
  "message" : 
  {
    "user_id" : "18772600", 
    "content" : "user reply text"
  }
}
Response
{
  "message" : {
    "message_id" : 2001,
    "user_id" : 0,
    "staff_id" : 123,
    "content" : "I need help",
    "content_html" : "",
    "attachments" : [],
    "note" : false,
    "created_at" : "Mon, 06 May 2014 00:15:17 +0300"
  }
}
}
Sample code
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X POST -d '{ "message": { "content":"I need help", "staff_id":123 }}' https://[domain].deskie.io/api/cases/200/messages.json
Add a response with attachments
POST  |  https://[domain].deskie.io/api/cases/[id]/messages.json
Add a new user/agent response with attachments to the case.
The maximum size of single attached file is 25MB.
The total size of all files should not exceed 50MB.
There are two options to send a request:
— in multipart/form-data format, to send the files themselves in the request;
— using the attachment_urls parameter to specify links to files.
Request in multipart/form-data format
{
  "message[user_id]": 18772600,
  "message[content]": "Docs are attached.",
  "message[attachments][1]": "Contract.pdf",
  "message[attachments][2]": "Invoice.pdf"
}
Request using the attachment_urls parameter
{ 
  "message" : {
    "user_id" : "18772600", 
    "content" : "Docs are attached.",
    "attachment_urls":  [
        "https://abcompany.com/548899/contract.pdf",
        "https://abcompany.com/548899/invoice.pdf"
    ]
  }
}
Response
{
  "message" : {
    "message_id" : 2001,
    "user_id" : 18772600,
    "staff_id" : 0,
    "content" : "Docs are attached",
    "content_html" : "",
    "attachments" : [
      {
          "file_id" : 345,
          "file_name" : "contract.pdf",
          "file_size" : 40863,
          "mime_type" : "application/pdf",
          "url" : "https://[domain].deskie.io/some_path_here/345"
      },
      {
          "file_id" : 346,
          "file_name" : "invoice.pdf",
          "file_size" : 50863,
          "mime_type" : "application/pdf",
          "url" : "https://[domain].deskie.io/some_path_here/346"
      }
    ],
    "note" : false,
    "created_at" : "Mon, 06 May 2014 00:15:17 +0300"
  }
}
Sample code in multipart/form-data format
curl -u [staff_email]:[api_key] -F "message[attachments][0]=@/path/to/file1.ext" -F "message[attachments][1]=@/path/to/file2.ext" -F "message[content]=I need help" -F "message[user_id]=18772600" -X POST https://[domain].deskie.io/api/cases/200/messages.json
Sample code using the attachment_urls parameter
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X POST -d '{ "message": { "user_id":18772600, "content":"Docs are attached.", "attachment_urls":  ["https://abcompany.com/548899/contract.pdf", "https://abcompany.com/548899/invoice.pdf"]  }}' https://[domain].deskie.io/api/cases/200/messages.json
Edit a response
PUT  |  https://[domain].deskie.io/api/cases/[case_id]/messages/[message_id].json
Edit a user/agent response in a case.
Parameters
Request
{
  "message" : {
    "content" : "Edited content"
  }
}
Response
{
  "message" : {
    "message_id" : 2001,
    "user_id" : 0,
    "staff_id" : 123,
    "content" : "Edited content",
    "content_html" : "",
    "attachments" : [],
    "note" : false,
    "created_at" : "Mon, 06 May 2014 00:15:17 +0300"
  }
}
}
Sample code
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X PUT -d '{ "message": { "content":"Edited content" }}' https://[domain].deskie.io/api/cases/200/messages/2001.json
Delete a response
DELETE  |  https://[domain].deskie.io/api/cases/[case_id]/messages/[message_id].json
Delete a response in the case.
Response
HTTP Status: 200 OK
Sample code
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X DELETE https://[domain].deskie.io/api/cases/2000/messages/123456.json
Add a note
POST  |  https://[domain].deskie.io/api/cases/[id]/note.json
Add a note to the case.
Bulk note addition: https://[domain].deskie.io/api/cases/[id],[id],[id]/note.json.

No more than 10 cases in one request.
Parameters
Request
{
  "note" : {
    "note_staff_id" : 123,
    "content" : "I need help"
  }
}
Response
{
  "message" : {
    "message_id" : 2001,
    "user_id" : 0,
    "staff_id" : 123,
    "content" : "I need help",
    "content_html" : "",
    "attachments" : [],
    "note" : true,
    "created_at" : "Mon, 06 May 2014 00:15:17 +0300"
  }
}
}
Sample code
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X POST -d '{ "message": { "content":"I need help", "note_staff_id":123 }}' https://[domain].deskie.io/api/cases/200/note.json
Add a note with attachments
POST  |  https://[domain].deskie.io/api/cases/[id]/note.json
Add a note with attachments to the case.
The maximum size of single attached file is 25MB.
The total size of all files should not exceed 50MB.
There are two options to send a request:
— in multipart/form-data format, to send the files themselves in the request;
— using the attachment_urls parameter to specify links to files.
Request in multipart/form-data format
{
  "note[staff_id]": "15789",
  "note[content]": "Docs are attached.",
  "note[attachments][1]": "Contract.pdf",
  "note[attachments][2]": "Invoice.pdf"
}
Request using the attachment_urls parameter
{
  "note" : {
    "staff_id" : "15789",
    "content" : "Docs are attached.",
    "attachment_urls":  [
        "https://abcompany.com/548899/contract.pdf",
        "https://abcompany.com/548899/invoice.pdf"
    ]
  }
}
Response
{
  "message" : {
    "message_id" : 2001,
    "user_id" : 0,
    "staff_id" : 15789,
    "content" : "Docs are attached.",
    "content_html" : "",
    "attachments" : [
      {
          "file_id" : 345,
          "file_name" : "contract.pdf",
          "file_size" : 40863,
          "mime_type" : "application/pdf",
          "url" : "https://[domain].deskie.io/some_path_here/345"
      },
      {
          "file_id" : 346,
          "file_name" : "invoice.pdf",
          "file_size" : 50863,
          "mime_type" : "application/pdf",
          "url" : "https://[domain].deskie.io/some_path_here/346"
      }
    ],
    "note" : true,
    "created_at" : "Mon, 06 May 2014 00:15:17 +0300"
  }
}
Sample code in multipart/form-data format
key] -F "note[attachments][0]=@/path/to/file1.ext" -F "note[attachments][1]=@/path/to/file2.ext" -F "note[content]=I need help" -F "note[staff_id]=15789" -X POST https://[domain].deskie.io/api/cases/200/note.json
Sample code using the attachment_urls parameter
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X POST -d '{ "note": { "staff_id":15789, "content":"Docs are attached", "attachment_urls":  ["https://abcompany.com/548899/contract.pdf", "https://abcompany.com/548899/invoice.pdf"]  }}' https://[domain].deskie.io/api/cases/200/note.json
Edit a note
PUT  |  https://[domain].deskie.io/api/cases/[case_id]/note/[message_id].json
Edit a note in the case.
Parameters
Request
{
  "note" : {
    "content" : "Edited content"
  }
}
Response
{
  "message" : {
    "message_id" : 2001,
    "user_id" : 0,
    "staff_id" : 123,
    "content" : "Edited content",
    "content_html" : "",
    "attachments" : [],
    "note" : true,
    "created_at" : "Mon, 06 May 2014 00:15:17 +0300"
  }
}
}
Sample code
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X PUT -d '{ "message": { "content":"Edited content" }}' https://[domain].deskie.io/api/cases/200/messages/2001.json
Delete a note
DELETE  |  https://[domain].deskie.io/api/cases/[case_id]/note/[message_id].json
Delete a note in the case.
Response
HTTP Status: 200 OK
Sample code
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X DELETE https://[domain].deskie.io/api/cases/2000/note/123456.json
Add a satisfaction rating to the case
PUT | https://[domain].deskie.io/api/cases/[case_id]/rate.json
Add a satisfaction rating to the case/chat on behalf of the user.

Applies if the option "in a separate email after the case is closed" is selected within the rating settings for email based cases and/or any option is selected within the rating settings for chats.
Parameters
Request
{ 
  "rate" : { 
       "rating" : "low\middle\high", 
       "rating_comment" : "cool",
       "rating_staff_id" : 189
   }
}
Response
{
  "case" : {
    "case_id" : 2000,
    "case_number" : "664-245651",
    "subject" : "I need help",
    "user_id" : 123,
    "staff_id" : 22,
    "group_id" : 44,
    "status" : "waiting",
    "priority" : "normal",
    "channel" : "web",
    "recipient" : "user@domain.com",
    "cc_emails" : "user_cc@domain.com,user_cc2@domain.com",
    "bcc_emails" : "user_bcc@domain.com",
    "deleted" : false,
    "spam" : false,
    "created_at" : "Mon, 05 May 2014 00:15:17 +0300",
    "updated_at" : "Tue, 23 Dec 2014 10:55:23 +0200",
    "language_id" : 2,
    "custom_fields" : {
      "cf_25" : "some text",
      "cf_30" : "another field"
    },
    "labels" : [101, 102]
    "rating": "high", 
    "rating_comment": "cool123",
    "rated_staff_id": 189
  }
}
Sample code
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X PUT -d "{ \"rate\" : { \"rating\" : \"low\", \"rating_comment\" : \"cool\" }} " https://[domain].deskie.io/api/cases/47223/rate.json
Add a satisfaction rating to the message
PUT | https://[domain].deskie.io/api/cases/[case_id]/rate/[message_id].json
Add a satisfaction rating to a specific agent response.

Applies if the option "in the signature of each agent's response" is selected within the rating settings for email based cases.
Parameters
Request
{ 
  "rate" : { 
       "rating" : "low\middle\high", 
       "rating_comment" : "cool"
   }
}
Response
{
  "message" : {
    "message_id" : 2001,
    "user_id" : 0,
    "staff_id" : 123,
    "content" : "I need help",
    "content_html" : "",
    "attachments" : [],
    "note" : false,
    "created_at" : "Mon, 06 May 2014 00:15:17 +0300",
    "rating": "low",
    "rating_comment": "cool",
    "rated_staff_id": 0
  }
}
}
Sample code
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X PUT -d "{ \"rate\" : { \"rating\" : \"low\", \"rating_comment\" : \"cool\" }} " https://[domain].deskie.io/api/cases/47223/rate/153624.json
Update a case/cases
PUT  |  https://[domain].deskie.io/api/cases/[id].json
Update parameters of a specific case.
Bulk update: https://[domain].deskie.io/api/cases/[id],[id],[id].json.

No more than 10 cases in one request.
Parameters
Request
{
  "case" : {
    "subject" : "Test subject changed",
    "status" : "closed",
    "priority" : "critical",
    "language_id" : 2,
    "custom_fields" : {
      "cf_25" : "some text",
      "cf_30" : "another field"
    },
    "add_labels" : [103, 104]
  }
}
Response
{
  "case" : {
    "case_id" : 2000,
    "case_number" : "664-245651",
    "subject" : "Test subject changed",
    "user_id" : 123,
    "staff_id" : 22,
    "group_id" : 44,
    "status" : "closed",
    "priority" : "critical",
    "channel" : "web",
    "recipient" : "user@domain.com",
    "deleted" : false,
    "spam" : false,
    "created_at" : "Mon, 05 May 2014 00:15:17 +0300",
    "updated_at" : "Tue, 23 Dec 2014 10:55:23 +0200",
    "language_id" : 2,
    "custom_fields" : {
      "cf_25" : "some text",
      "cf_30" : "another field"
    },
    "labels" : [101, 102, 103, 104]
  }
}
RESPONSE FOR A BULK UPDATE
{
  "case_success_id" : [101, 102, 103, 104]
}
Sample code
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X PUT -d '{ "case": { "subject":"Test subject changed", "status":"closed", "priority":"critical","language_id":2, "custom_fields":{"cf_25":"some text", "cf_30":"another field"} }}' https://[domain].deskie.io/api/cases/2000.json
Move a case/cases to the "TRASH"
PUT  |  https://[domain].deskie.io/api/cases/[id]/trash.json
Move a case to the "TRASH".
Bulk move cases to the "TRASH": https://[domain].deskie.io/api/cases/[id],[id],[id]/trash.json.

No more than 10 cases in one request.
Response
{
  "case" : {
    "case_id" : 2000,
    "case_number" : "664-245651",
    "subject" : "Test subject changed",
    "user_id" : 123,
    "staff_id" : 22,
    "group_id" : 44,
    "status" : "closed",
    "priority" : "critical",
    "channel" : "web",
    "recipient" : "user@domain.com",
    "deleted" : true,
    "spam" : false,
    "created_at" : "Mon, 05 May 2014 00:15:17 +0300",
    "updated_at" : "Tue, 23 Dec 2014 10:55:23 +0200",
    "language_id" : 2,
    "custom_fields" : {
      "cf_25" : "some text",
      "cf_30" : "another field"
    },
    "labels" : [101, 102]
  }
}
RESPONSE FOR A BULK MOVING OF CASES TO THE "TRASH"
{
  "case_success_id" : [101, 102, 103, 104]
}
Sample code
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X PUT -d '' https://[domain].deskie.io/api/cases/2000/trash.json
Mark a case/cases as SPAM
PUT  |  https://[domain].deskie.io/api/cases/[id]/spam.json
Move a case to the "SPAM" filter.
Bulk move cases to the "SPAM" filter: https://[domain].deskie.io/api/cases/[id],[id],[id]/spam.json.

No more than 10 cases in one request.
Response
{
  "case" : {
    "case_id" : 2000,
    "case_number" : "664-245651",
    "subject" : "Test subject changed",
    "user_id" : 123,
    "staff_id" : 22,
    "group_id" : 44,
    "status" : "closed",
    "priority" : "critical",
    "channel" : "web",
    "recipient" : "user@domain.com",
    "deleted" : false,
    "spam" : true,
    "created_at" : "Mon, 05 May 2014 00:15:17 +0300",
    "updated_at" : "Tue, 23 Dec 2014 10:55:23 +0200",
    "language_id" : 2,
    "custom_fields" : {
      "cf_25" : "some text",
      "cf_30" : "another field"
    },
    "labels" : [101, 102]
  }
}
RESPONSE FOR A BULK MOVING OF CASES TO THE "SPAM" FILTER
{
  "case_success_id" : [101, 102, 103, 104]
}
Sample code
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X PUT -d '' https://[domain].deskie.io/api/cases/2000/spam.json
Restore a case/cases
PUT  |  https://[domain].deskie.io/api/cases/[id]/restore.json
Restore a case from the "TRASH" or "SPAM".
Bulk restore: https://[domain].deskie.io/api/cases/[id],[id],[id]/restore.json.

No more than 10 cases in one request.
Response
{
  "case" : {
    "case_id" : 2000,
    "case_number" : "664-245651",
    "subject" : "Test subject changed",
    "user_id" : 123,
    "staff_id" : 22,
    "group_id" : 44,
    "status" : "closed",
    "priority" : "critical",
    "channel" : "web",
    "recipient" : "user@domain.com",
    "deleted" : false,
    "spam" : false,
    "created_at" : "Mon, 05 May 2014 00:15:17 +0300",
    "updated_at" : "Tue, 23 Dec 2014 10:55:23 +0200",
    "language_id" : 2,
    "custom_fields" : {
      "cf_25" : "some text",
      "cf_30" : "another field"
    },
    "labels" : [101, 102]
  }
}
RESPONSE FOR A BULK RESTORING OF CASES
{
  "case_success_id" : [101, 102, 103, 104]
}
Sample code
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X PUT -d '' https://[domain].deskie.io/api/cases/2000/restore.json
Delete permanently a case
DELETE  |  https://[domain].deskie.io/api/cases/[id].json
Delete permanently a case. Available only to the agents with a full access level.
Bulk permanent delete: https://[domain].deskie.io/api/cases/[id],[id],[id].json.

No more than 10 cases in one request.
Response
HTTP Status: 200 OK
Sample code
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X DELETE https://[domain].deskie.io/api/cases/2000.json
Edit an idea
PUT  |  https://[domain].deskie.io/api/cases/[case_id]/idea.json
Edit an idea.
Parameters
Request
{
  "message" : {
    "content" : "New content",
    "stage" : "planned"
  }
}
Response
{
  "case" : {
    "case_id" : 2000,
    "case_number" : "664-245651",
    "subject" : "I need help",
    "user_id" : 123,
    "staff_id" : 22,
    "group_id" : 44,
    "status" : "waiting",
    "priority" : "normal",
    "channel" : "idea",
    "recipient" : "",
    "recipient_cc" : "",
    "recipient_bcc" : "",
    "deleted" : false,
    "spam" : false,
    "created_at" : "Mon, 05 May 2014 00:15:17 +0300",
    "updated_at" : "Tue, 23 Dec 2014 10:55:23 +0200",
    "idea" : {
      "content" : "New content",
      "stage" : "planned",
      "category" : 319
    }
  }
}
Sample code
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X PUT -d '{ "message": { "content":"New content", "stage" : "planned" }}' https://[domain].deskie.io/api/cases/200/idea.json
Update an official response for the idea
PUT  |  https://[domain].deskie.io/api/cases/[case_id]/idea_official_response.json
Add/edit an official response for the idea.
Parameters
Request
{
  "message" : {
    "content" : "New official response"
  }
}
Response
{
  "case" : {
    "case_id" : 2000,
    "case_number" : "664-245651",
    "subject" : "I need help",
    "user_id" : 123,
    "staff_id" : 22,
    "group_id" : 44,
    "status" : "waiting",
    "priority" : "normal",
    "channel" : "idea",
    "recipient" : "",
    "recipient_cc" : "",
    "recipient_bcc" : "",
    "deleted" : false,
    "spam" : false,
    "created_at" : "Mon, 05 May 2014 00:15:17 +0300",
    "updated_at" : "Tue, 23 Dec 2014 10:55:23 +0200",
    "idea" : {
      "official_response" : "New official response",
      "official_response_tstamp" : 1509007649
    }
  }
}
Sample code
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X PUT -d '{ "message": { "content":"New official response" }}' https://[domain].deskie.io/api/cases/200/idea_official_response.json
Delete an official response for the idea
DELETE  |  https://[domain].deskie.io/api/cases/[case_id]/idea_official_response.json
Delete an official response for the idea.
Response
HTTP Status: 200 OK
Sample code
curl -u [staff_email]:[api_key] -H "Content-Type: application/json" -X DELETE https://[domain].deskie.io/api/cases/2000/idea_official_response.json